翻訳と辞書
Words near each other
・ Tainița River
・ Taino Ritual Seat
・ Taino, Lombardy
・ Tainoceras
・ Tainocerataceae
・ Tainoceratidae
・ Tainoceratina
・ Tainohama Station
・ Tainose Station
・ Tainosia
・ Tainosphaeria
・ Tainsar
・ Taint
・ Taint (band)
・ Taint (legal)
Taint checking
・ Taint Pluribus Taint Unum
・ Tainted
・ Tainted (comics)
・ Tainted blood scandal (United Kingdom)
・ Tainted Dreams
・ Tainted Love
・ Tainted Love/Where Did Our Love Go EP
・ Tainted Obligation
・ Tainted Reality
・ Tainter
・ Tainter gate
・ Tainter Lake
・ Tainter Lake, Wisconsin
・ Tainter, Wisconsin


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Taint checking : ウィキペディア英語版
Taint checking
Taint checking is a feature in some computer programming languages, such as Perl and Ruby, designed to increase security by preventing malicious users from executing commands on a host computer. Taint checks highlight specific security risks primarily associated with web sites which are attacked using techniques such as SQL injection or buffer overflow attack approaches.
The concept behind taint checking is that any variable that can be modified by an outside user (for example a variable set by a field in a web form) poses a potential security risk. If that variable is used in an expression that sets a second variable, that second variable is now also suspicious. The taint checking tool proceeds variable by variable until it has a complete list of all variables which are potentially influenced by outside input. If any of these variables is used to execute dangerous commands (such as direct commands to a SQL database or the host computer operating system), the taint checker warns that the program is using a potentially dangerous tainted variable. The computer programmer can then redesign the program to erect a safe wall around the dangerous input.
Taint checking may be viewed as a conservative approximation of the full verification of non-interference or the more general concept of secure information flow.〔A. Sabelfeld and A. C. Myers, "Language-based information-flow security", ''IEEE Journal on Selected Areas in Communications'', 2003.〕 Because information flow in a system cannot be verified by examining a single execution trace of that system,〔J. Ligatti, L. Bauer, D. Walker. "Edit automata: Enforcement mechanisms for run-time security policies". ''International Journal of Information Security'', 2005〕 the results of taint analysis will necessarily reflect approximate information regarding the information flow characteristics of the system to which it is applied.〔T. Terauchi and A. Aiken. "Secure information flow as a safety problem". In ''12th International Static Analysis Symposium'', September 2005.〕
Taint checking is a black-listing approach as it asserts that certain values are dangerous. The white-listing equivalent is trademarking.
== Example ==

The following dangerous Perl code opens a large SQL injection vulnerability by not checking the value of the $name variable:

#!/usr/bin/perl
my $name = $cgi->param("name"); # Get the name from the browser
...
$dbh->TaintIn = 1;
$dbh->execute("SELECT
* FROM users WHERE name = '$name';"); # Execute a SQL query

If taint checking is turned on, Perl would refuse to run the command and exit with an error message, because a tainted variable is being used in a SQL query. Without taint checking, a user could enter foo'; DROP TABLE users --, thereby running a command that deletes the entire database table. Much safer would be to encode the tainted value of $name to a SQL string literal and use the result in the SQL query, guaranteeing that no dangerous command embedded in $name will be evaluated. Another way to achieve that is to use a prepared statement to sanitize all variable input for a query.
One thing to note is that Perl DBI requires one to set the TaintIn attribute of a database handle ''as well as'' enabling taint mode to check one's SQL strings.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Taint checking」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.